package com.cskaoyan.javase.overload._0introduction;
/**
 * 使用方法的重载改进案例
 * Java的方法重载（overload）机制:
 *      允许一个类中,有多个相同的名字的方法
 * 那么如何区分这些同名的方法呢?
 * 方法的签名: 方法名 + 形参列表 用于唯一指示一个方法
 * 现在方法名一样的,只能形参列表不同来区分方法
 * 如果两个方法签名一致,那就是同一个方法,定义在同一个类中是方法的重复,会编译报错
 *
 * 何为形参列表不同?
 *      1.参数的个数不同
 *      2.如果参数的个数相同,但是数据类型不同
 *      3.如果参数的个数相同(至少两个),数据类型也相同,那么顺序不同
 *
 * 以上三点,如果两个方法符合任意一点(或者多点)都能够构成方法的重载
 * 切记方法的重载就只有上述三个构成条件,其他不同一律不能构成方法的重载,典型的像:
 *      1.形参的名字不同
 *      2.修饰符列表不同
 *      3.返回值类型不同
 *      4.方法体不同
 * 都是不能构成方法重载的
 *
 *
 *
 * @since 16:10
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class NewDemo {
    public static void main(String[] args) {

    }

    public static void test(){}
    // public static int test(){
    //     return 0;
    // }
     // void test(){}
    public static void test(int a){}
    // public static void test(int b){}
    public static void test(double a){}
    public static void test(double a,int b){}
    public static void test(int a,double b){}
    // public static void test(){}


    // 编写程序，计算两个int类型数据之和，并输出结果
    public static int sum(int num1, int num2) {
        return num1 + num2;
    }

    // 编写程序，计算两个double类型数据之和，并输出结果
    public static double sum(double num1, double num2) {
        return num1 + num2;
    }

    // 编写程序，计算两个long类型数据之和，并输出结果
    public static long sum(long num1, long num2) {
        return num1 + num2;
    }
}
